Video display devices for use with computers have been well known for several decades. The most common video display device consists of a monochrome cathode ray tube and supporting electronics capable of displaying only ASCII characters as text.
More recently, video display devices have been introduced which have the ability to display graphics images. In a typical implementation of such a display, the attributes--color, intensity, and so on--of each pixel on the screen are maintained in an image buffer. An image buffer is simply a memory array with sufficient storage capacity to store the appropriate information about at least each pixel displayed on the screen; many image buffers can store far more information than is displayed on the screen.
Video displays of three dimensional images typically involve construction of a wire frame model of the object being created, and many graphics displays simply display the entire wire frame model. More recently, display devices and associated software have been introduced which are capable of rendering solid, three dimensional images on the screen in a manner which closely approximates a view of the actual object. Renderings of the object typically involve elimination of "hidden" surfaces, or surfaces that would be hidden in viewing a real object, so that the only surfaces visible on the display are those which would be seen by a person viewing the real object. For example, when viewing a cube from above and to its right, three faces are visible and three faces are hidden. Although a computer representation of the cube typically will include information sufficient to display all six faces (so that a wire frame model would show all edges), a solid rendering of that object on the screen will display only the three faces a viewer would normally see.
Renderings of three dimensional images are typically created through the use of a Z buffer, which is a two dimensional memory array somewhat similar to the image buffer. The function of the Z buffer is to store the distance of each pixel forward from a reference point. Pixels with greater Z values are assumed to be in front of pixels with smaller Z values, so that the process of creating a rendering involves the conceptually simple process of calculating the Z value of each pixel for a given object and, where objects or faces of objects overlap, retaining pixels with the largest Z value (i.e., closest to the viewer). Returning to the display of the cube mentioned above, hidden faces would have smaller Z buffer values than the viewable faces.
The incorporation of a Z buffer into the image display process for a frame of video information yields three basic steps: (1) initialize the Z buffer to the minimum Z value; (2) initialize the image buffer to the background color; and (3) render all objects.
While the process of calculating Z values for a screen of pixels is conceptually simple, the need to make such calculations rapidly can create significant difficulties. A fundamental measure of performance for a video display capable of providing three dimensional renderings is the number of frames it can render per second. At least ten frames per second are required to give the illusion of motion, while higher frame rates significantly improve the appearance of motion. For simple images displayed on conventional systems, where the image buffer and Z buffer are both cleared at the beginning of each frame, the major factor in determining frame rate is the amount of time required to clear the image and Z buffers.
There has therefore been a need for a method and device which materially reduces the need to clear both the image and the Z buffers in the process of rendering three dimensional images on video display screens.